# 导入 Starlette 应用类
from starlette.applications import Starlette

# 导入 JSON 响应类
from starlette.responses import JSONResponse

# 导入路由类
from starlette.routing import Route

# 导入异步 IO 模块
import asyncio


# 定义异步首页处理函数
async def homepage(request):
    # 模拟异步操作（如数据库查询、外部 API 调用等）
    await asyncio.sleep(0.1)
    # 返回 JSON 响应
    return JSONResponse({"hello": "world"})


# 创建 Starlette 应用实例
app = Starlette(
    debug=True,
    routes=[
        # 注册路由，将根路径映射到 homepage 函数
        Route("/", homepage),
    ],
)


# 定义主函数
def main():
    # 导入 uvicorn 服务器
    import uvicorn

    # 启动应用服务器
    uvicorn.run(app, host="127.0.0.1", port=8000)


# 脚本入口
if __name__ == "__main__":
    main()
